package com.tuda.system.domain;

import java.math.BigDecimal;
import java.util.List;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.tuda.common.annotation.Excel;
import com.tuda.common.core.domain.BaseEntity;

import javax.validation.constraints.Min;

/**
 * 货运订单对象 tuda_order
 *
 * @author Ys
 * @date 2023-07-14
 */
public class TudaOrder extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    private Long id;

    private Long orderId;

    private Long parentId;

    private String orderNum;

    /**微信支付订单号**/
    private String transactionId;

    /** 发起人ID */
    @Excel(name = "发起人ID")
    private Long userId;

    @Excel(name = "提验人")
    private String vehicleInspector;
    @Excel(name = "业务员")
    private String userName;

    @Excel(name = "业务员电话")
    private String salesmanPhone;

    /** 建单人 */
    @Excel(name = "建单人")
    private String createUser;

    /** 车型 */
    @Excel(name = "车型")
    private String vehicleModel;

    /** 车架号 */
    @Excel(name = "车架号")
    private String vin;

    /** 托运人 */
    @Excel(name = "托运人")
    private String client;

    /** 托运人电话 */
    @Excel(name = "托运人电话")
    private String clientPhone;

    /** 起始地 */
    @Excel(name = "起始地")
    private String origin;

    /** 目的地 */
    @Excel(name = "目的地")
    private String dest;

    /** 接收人 */
    @Excel(name = "接收人")
    private String receiver;

    /** 接车人电话 */
    @Excel(name = "接车人电话")
    private String receiverPhone;

    /** 支付方式/ 1 到付，2 现付，3 分期 */
    @Excel(name = "支付方式/ 1 到付，2 现付，3 欠付，4 已还款")
    private Long payType;

    private String payTypeValue;

    /** 运费金额 */
    @Excel(name = "运费金额")
    @Min(value = 1, message = "运费金额必须大于0")
    private BigDecimal freightAmount;

    /** 已付金额 */
    @Excel(name = "已付金额")
    private BigDecimal paidAmount;

    /** 汽车图片地址 */
    @Excel(name = "汽车图片地址")
    private String carImgs;

    /** 合同图片地址 */
    @Excel(name = "合同图片地址")
    private String contractImgs;

    /**
     * 业务员提成
     */
    private String percentage = "0.00";
    /**
     * 欠付
     */
    private Boolean notPay = false;
    /**
     * 欠反
     */
    private Boolean notGive = false;

    private List<String> carImgList;

    private List<String> contractImgList;

    /** 3 待发运， 4 运输中，6 已完成 */
    @Excel(name = "3 待发运， 4 运输中，6 已完成， 7 异常")
    private Long orderType;

    /** 利润 */
    @Excel(name = "利润")
    private BigDecimal profit;

    @Excel(name = "业务员提成")
    private BigDecimal commission;
    private Integer commissionState;
    private String commissionNotes;

    /** 备注 */
    @Excel(name = "备注")
    private String notes;

    /** 0 正常，1 单已销毁 */
    @Excel(name = "0 正常，1 单已销毁")
    private Integer isDelete;

    @Excel(name = "提验费")
    private BigDecimal inspectionFee;

    private Integer inspectionState;

    private String inspectionNotes;

    @Excel(name = "代驾费")
    private BigDecimal drivingFee;

    private Integer  drivingState;

    private String  drivingNotes;

    @Excel(name = "加油费")
    private BigDecimal refuelingFee;

    private Integer  refuelingState;

    private String  refuelingNotes;

    @Excel(name = "小板费")
    private BigDecimal smallBoardFee;

    private Integer  smallBoardState;

    private String  smallBoardNotes;

    @Excel(name = "叉车费")
    private BigDecimal forkliftFee;

    private Integer  forkliftState;

    private String  forkliftNotes;

    @Excel(name = "中介费")
    private BigDecimal agencyFee;

    private Integer  agencyState;

    private String  agencyNotes;

    @Excel(name = "其他费")
    private BigDecimal otherFee;

    private Integer  otherState;

    private String  otherNotes;

    @Excel(name = "保险费")
    private BigDecimal insureFee;

    private Integer  insureState;

    private String  insureNotes;

    @Excel(name = "洗车费")
    private BigDecimal carWashFee;

    private Integer  carWashState;

    private String  carWashNotes;

    @Excel(name = "质损费")
    private BigDecimal massLossFee;

    private Integer  massLossState;

    private String  massLossNotes;

    @Excel(name = "中转落站")
    private BigDecimal transferCarFee;

    private Integer  transferState;

    private String  transferNotes;

    /**
     * 驾驶员电话
     */
    private String transporterPhone;

    /**
     * 驾驶员
     */
    private String transporter;

    /**
     * 中转人
     */
    private String transitBranch;

    /**
     *  0 所有， 1 有欠反，2 有欠付
     */
    private Integer refund;
    /**
     * 车牌号
     */
    private String plateNumber;
    /**
     * 欠/返
     */
    private BigDecimal owes;

    /**
     * 中转费
     */
    private BigDecimal transferFee;
    /**
     * 到收费用
     */
    private BigDecimal amount;

    private Integer type = 0;


    private Long orderTransferId;

    private String headPhone;

    public Long getParentId() {
        return parentId;
    }

    public void setParentId(Long parentId) {
        this.parentId = parentId;
    }

    public Integer getType() {
        return type;
    }

    public void setType(Integer type) {
        this.type = type;
    }

    public Long getOrderId() {
        return orderId;
    }

    public void setOrderId(Long orderId) {
        this.orderId = orderId;
    }

    public BigDecimal getTransferFee() {
        return transferFee;
    }

    public void setTransferFee(BigDecimal transferFee) {
        this.transferFee = transferFee;
    }

    public BigDecimal getAmount() {
        return amount;
    }

    public void setAmount(BigDecimal amount) {
        this.amount = amount;
    }

    public Long getOrderTransferId() {
        return orderTransferId;
    }

    public void setOrderTransferId(Long orderTransferId) {
        this.orderTransferId = orderTransferId;
    }

    public BigDecimal getOwes() {
        return owes;
    }

    public void setOwes(BigDecimal owes) {
        this.owes = owes;
    }

    public Integer getRefund() {
        return refund;
    }

    public void setRefund(Integer refund) {
        this.refund = refund;
    }

    public String getTransporterPhone() {
        return transporterPhone;
    }

    public void setTransporterPhone(String transporterPhone) {
        this.transporterPhone = transporterPhone;
    }

    public String getTransporter() {
        return transporter;
    }

    public void setTransporter(String transporter) {
        this.transporter = transporter;
    }

    public String getPayTypeValue() {
        return payTypeValue;
    }

    public void setPayTypeValue(String payTypeValue) {
        this.payTypeValue = payTypeValue;
    }

    /** 货运中转信息 */
    private List<TudaOrderTransfer> tudaOrderTransferList;

    private TudaOrderTransfer tudaOrderTransfer;

    public TudaOrderTransfer getTudaOrderTransfer() {
        return tudaOrderTransfer;
    }

    public void setTudaOrderTransfer(TudaOrderTransfer tudaOrderTransfer) {
        this.tudaOrderTransfer = tudaOrderTransfer;
    }

    public List<String> getCarImgList() {
        return carImgList;
    }

    public void setCarImgList(List<String> carImgList) {
        this.carImgList = carImgList;
    }

    public List<String> getContractImgList() {
        return contractImgList;
    }

    public void setContractImgList(List<String> contractImgList) {
        this.contractImgList = contractImgList;
    }

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setUserId(Long userId)
    {
        this.userId = userId;
    }

    public Long getUserId()
    {
        return userId;
    }
    public void setUserName(String userName)
    {
        this.userName = userName;
    }

    public String getUserName()
    {
        return userName;
    }
    public void setVehicleModel(String vehicleModel)
    {
        this.vehicleModel = vehicleModel;
    }

    public String getVehicleModel()
    {
        return vehicleModel;
    }
    public void setVin(String vin)
    {
        this.vin = vin;
    }

    public String getVin()
    {
        return vin;
    }
    public void setClient(String client)
    {
        this.client = client;
    }

    public String getClient()
    {
        return client;
    }
    public void setClientPhone(String clientPhone)
    {
        this.clientPhone = clientPhone;
    }

    public String getClientPhone()
    {
        return clientPhone;
    }
    public void setOrigin(String origin)
    {
        this.origin = origin;
    }

    public String getOrigin()
    {
        return origin;
    }
    public void setDest(String dest)
    {
        this.dest = dest;
    }

    public String getDest()
    {
        return dest;
    }
    public void setReceiver(String receiver)
    {
        this.receiver = receiver;
    }

    public String getReceiver()
    {
        return receiver;
    }
    public void setReceiverPhone(String receiverPhone)
    {
        this.receiverPhone = receiverPhone;
    }

    public String getReceiverPhone()
    {
        return receiverPhone;
    }
    public void setPayType(Long payType)
    {
        this.payType = payType;
    }

    public Long getPayType()
    {
        return payType;
    }
    public void setFreightAmount(BigDecimal freightAmount)
    {
        this.freightAmount = freightAmount;
    }

    public BigDecimal getFreightAmount()
    {
        return freightAmount;
    }
    public void setPaidAmount(BigDecimal paidAmount)
    {
        this.paidAmount = paidAmount;
    }

    public BigDecimal getPaidAmount()
    {
        return paidAmount;
    }
    public void setCarImgs(String carImgs)
    {
        this.carImgs = carImgs;
    }

    public String getCarImgs()
    {
        return carImgs;
    }
    public void setContractImgs(String contractImgs)
    {
        this.contractImgs = contractImgs;
    }

    public String getContractImgs()
    {
        return contractImgs;
    }
    public void setOrderType(Long orderType)
    {
        this.orderType = orderType;
    }

    public Long getOrderType()
    {
        return orderType;
    }
    public void setProfit(BigDecimal profit)
    {
        this.profit = profit;
    }

    public BigDecimal getProfit()
    {
        return profit;
    }
    public void setNotes(String notes)
    {
        this.notes = notes;
    }

    public String getNotes()
    {
        return notes;
    }
    public void setIsDelete(Integer isDelete)
    {
        this.isDelete = isDelete;
    }

    public Integer getIsDelete()
    {
        return isDelete;
    }

    public String getOrderNum() {
        return orderNum;
    }

    public void setOrderNum(String orderNum) {
        this.orderNum = orderNum;
    }

    public List<TudaOrderTransfer> getTudaOrderTransferList()
    {
        return tudaOrderTransferList;
    }

    public void setTudaOrderTransferList(List<TudaOrderTransfer> tudaOrderTransferList)
    {
        this.tudaOrderTransferList = tudaOrderTransferList;
    }

    public String getTransactionId() {
        return transactionId;
    }

    public void setTransactionId(String transactionId) {
        this.transactionId = transactionId;
    }

    public BigDecimal getInspectionFee() {
        return inspectionFee;
    }

    public void setInspectionFee(BigDecimal inspectionFee) {
        this.inspectionFee = inspectionFee;
    }

    public BigDecimal getDrivingFee() {
        return drivingFee;
    }

    public void setDrivingFee(BigDecimal drivingFee) {
        this.drivingFee = drivingFee;
    }

    public BigDecimal getRefuelingFee() {
        return refuelingFee;
    }

    public void setRefuelingFee(BigDecimal refuelingFee) {
        this.refuelingFee = refuelingFee;
    }

    public BigDecimal getSmallBoardFee() {
        return smallBoardFee;
    }

    public void setSmallBoardFee(BigDecimal smallBoardFee) {
        this.smallBoardFee = smallBoardFee;
    }

    public BigDecimal getForkliftFee() {
        return forkliftFee;
    }

    public void setForkliftFee(BigDecimal forkliftFee) {
        this.forkliftFee = forkliftFee;
    }

    public String getPercentage() {
        return percentage;
    }

    public void setPercentage(String percentage) {
        this.percentage = percentage;
    }

    public Boolean getNotPay() {
        return notPay;
    }

    public void setNotPay(Boolean notPay) {
        this.notPay = notPay;
    }

    public Boolean getNotGive() {
        return notGive;
    }

    public void setNotGive(Boolean notGive) {
        this.notGive = notGive;
    }

    public String getCreateUser() {
        return createUser;
    }

    public void setCreateUser(String createUser) {
        this.createUser = createUser;
    }

    public String getPlateNumber() {
        return plateNumber;
    }

    public void setPlateNumber(String plateNumber) {
        this.plateNumber = plateNumber;
    }

    public BigDecimal getCommission() {
        return commission;
    }

    public void setCommission(BigDecimal commission) {
        this.commission = commission;
    }

    public BigDecimal getAgencyFee() {
        return agencyFee;
    }

    public void setAgencyFee(BigDecimal agencyFee) {
        this.agencyFee = agencyFee;
    }

    public String getSalesmanPhone() {
        return salesmanPhone;
    }

    public void setSalesmanPhone(String salesmanPhone) {
        this.salesmanPhone = salesmanPhone;
    }

    public String getVehicleInspector() {
        return vehicleInspector;
    }

    public void setVehicleInspector(String vehicleInspector) {
        this.vehicleInspector = vehicleInspector;
    }

    public BigDecimal getOtherFee() {
        return otherFee;
    }

    public void setOtherFee(BigDecimal otherFee) {
        this.otherFee = otherFee;
    }

    public String getHeadPhone() {
        return headPhone;
    }

    public void setHeadPhone(String headPhone) {
        this.headPhone = headPhone;
    }

    public Integer getInspectionState() {
        return inspectionState;
    }

    public void setInspectionState(Integer inspectionState) {
        this.inspectionState = inspectionState;
    }

    public String getInspectionNotes() {
        return inspectionNotes;
    }

    public void setInspectionNotes(String inspectionNotes) {
        this.inspectionNotes = inspectionNotes;
    }

    public Integer getDrivingState() {
        return drivingState;
    }

    public void setDrivingState(Integer drivingState) {
        this.drivingState = drivingState;
    }

    public String getDrivingNotes() {
        return drivingNotes;
    }

    public void setDrivingNotes(String drivingNotes) {
        this.drivingNotes = drivingNotes;
    }

    public Integer getRefuelingState() {
        return refuelingState;
    }

    public void setRefuelingState(Integer refuelingState) {
        this.refuelingState = refuelingState;
    }

    public String getRefuelingNotes() {
        return refuelingNotes;
    }

    public void setRefuelingNotes(String refuelingNotes) {
        this.refuelingNotes = refuelingNotes;
    }

    public Integer getSmallBoardState() {
        return smallBoardState;
    }

    public void setSmallBoardState(Integer smallBoardState) {
        this.smallBoardState = smallBoardState;
    }

    public String getSmallBoardNotes() {
        return smallBoardNotes;
    }

    public void setSmallBoardNotes(String smallBoardNotes) {
        this.smallBoardNotes = smallBoardNotes;
    }

    public Integer getForkliftState() {
        return forkliftState;
    }

    public void setForkliftState(Integer forkliftState) {
        this.forkliftState = forkliftState;
    }

    public String getForkliftNotes() {
        return forkliftNotes;
    }

    public void setForkliftNotes(String forkliftNotes) {
        this.forkliftNotes = forkliftNotes;
    }

    public Integer getAgencyState() {
        return agencyState;
    }

    public void setAgencyState(Integer agencyState) {
        this.agencyState = agencyState;
    }

    public String getAgencyNotes() {
        return agencyNotes;
    }

    public void setAgencyNotes(String agencyNotes) {
        this.agencyNotes = agencyNotes;
    }

    public Integer getOtherState() {
        return otherState;
    }

    public void setOtherState(Integer otherState) {
        this.otherState = otherState;
    }

    public String getOtherNotes() {
        return otherNotes;
    }

    public void setOtherNotes(String otherNotes) {
        this.otherNotes = otherNotes;
    }

    public String getTransitBranch() {
        return transitBranch;
    }

    public void setTransitBranch(String transitBranch) {
        this.transitBranch = transitBranch;
    }

    public BigDecimal getInsureFee() {
        return insureFee;
    }

    public void setInsureFee(BigDecimal insureFee) {
        this.insureFee = insureFee;
    }

    public Integer getInsureState() {
        return insureState;
    }

    public void setInsureState(Integer insureState) {
        this.insureState = insureState;
    }

    public String getInsureNotes() {
        return insureNotes;
    }

    public void setInsureNotes(String insureNotes) {
        this.insureNotes = insureNotes;
    }

    public BigDecimal getCarWashFee() {
        return carWashFee;
    }

    public void setCarWashFee(BigDecimal carWashFee) {
        this.carWashFee = carWashFee;
    }

    public Integer getCarWashState() {
        return carWashState;
    }

    public void setCarWashState(Integer carWashState) {
        this.carWashState = carWashState;
    }

    public String getCarWashNotes() {
        return carWashNotes;
    }

    public void setCarWashNotes(String carWashNotes) {
        this.carWashNotes = carWashNotes;
    }

    public BigDecimal getMassLossFee() {
        return massLossFee;
    }

    public void setMassLossFee(BigDecimal massLossFee) {
        this.massLossFee = massLossFee;
    }

    public Integer getMassLossState() {
        return massLossState;
    }

    public void setMassLossState(Integer massLossState) {
        this.massLossState = massLossState;
    }

    public String getMassLossNotes() {
        return massLossNotes;
    }

    public void setMassLossNotes(String massLossNotes) {
        this.massLossNotes = massLossNotes;
    }

    public BigDecimal getTransferCarFee() {
        return transferCarFee;
    }

    public void setTransferCarFee(BigDecimal transferCarFee) {
        this.transferCarFee = transferCarFee;
    }

    public Integer getTransferState() {
        return transferState;
    }

    public void setTransferState(Integer transferState) {
        this.transferState = transferState;
    }

    public String getTransferNotes() {
        return transferNotes;
    }

    public void setTransferNotes(String transferNotes) {
        this.transferNotes = transferNotes;
    }

    public Integer getCommissionState() {
        return commissionState;
    }

    public void setCommissionState(Integer commissionState) {
        this.commissionState = commissionState;
    }

    public String getCommissionNotes() {
        return commissionNotes;
    }

    public void setCommissionNotes(String commissionNotes) {
        this.commissionNotes = commissionNotes;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("orderNum", getOrderNum())
                .append("transactionId", getTransactionId())
                .append("userId", getUserId())
                .append("vehicleInspector", getVehicleInspector())
                .append("userName", getUserName())
                .append("salesmanPhone", getSalesmanPhone())
                .append("vehicleModel", getVehicleModel())
                .append("vin", getVin())
                .append("client", getClient())
                .append("clientPhone", getClientPhone())
                .append("origin", getOrigin())
                .append("dest", getDest())
                .append("receiver", getReceiver())
                .append("receiverPhone", getReceiverPhone())
                .append("payType", getPayType())
                .append("freightAmount", getFreightAmount())
                .append("paidAmount", getPaidAmount())
                .append("carImgs", getCarImgs())
                .append("contractImgs", getContractImgs())
                .append("orderType", getOrderType())
                .append("updateTime", getUpdateTime())
                .append("createTime", getCreateTime())
                .append("profit", getProfit())
                .append("commission", getCommission())
                .append("notes", getNotes())
                .append("inspectionFee", getInspectionFee())
                .append("inspectionState", getInspectionState())
                .append("inspectionNotes", getInspectionNotes())
                .append("drivingFee", getDrivingFee())
                .append("drivingState", getDrivingState())
                .append("drivingNotes", getDrivingNotes())
                .append("refuelingFee", getRefuelingFee())
                .append("refuelingState", getRefuelingState())
                .append("refuelingNotes", getRefuelingNotes())
                .append("smallBoardFee", getSmallBoardFee())
                .append("smallBoardState", getSmallBoardState())
                .append("smallBoardNotes", getSmallBoardNotes())
                .append("forkliftFee", getForkliftFee())
                .append("forkliftState", getForkliftState())
                .append("forkliftNotes", getForkliftNotes())
                .append("agencyFee", getAgencyFee())
                .append("agencyState", getAgencyState())
                .append("agencyNotes", getAgencyNotes())
                .append("otherFee", getOtherFee())
                .append("otherState", getOtherState())
                .append("otherNotes", getOtherNotes())
                .append("isDelete", getIsDelete())
                .append("tudaOrderTransferList", getTudaOrderTransferList())
                .append("type", getType())
                .toString();
    }
}
